package com.csun.cmny.provider.service;

import com.csun.cmny.provider.model.domain.UacUser;
import com.csun.cmny.provider.model.dto.hualong.HuaLongDoctorAuditDto;
import com.csun.cmny.provider.model.vo.hualong.*;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2020-10-23 15:44
 * @Description:
 */
public interface HuaLongService {

    /**
     * 账号密码登录
     *
     * @param account   手机号
     * @param password  密码
     * @param role      用户角色，默认为1（1：医生 2：护工 3：医护主管）
     *
     * @return  the uac user
     */
    UacUser login(String account, String password, String role);

    /**
     * 医生列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long doctor vo
     */
    Object getHuaLongDoctorList(Integer page, Integer size);

    /**
     * 医生详情
     *
     * @param id    the id
     *
     * @return  the hua long doctor vo
     */
    Object getHuaLongDoctorById(Integer id);

    /**
     * 主管列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long super vo
     */
    Object getHuaLongSuperList(Integer page, Integer size);

    /**
     * 主管详情
     *
     * @param id    the id
     *
     * @return  the hua long super vo
     */
    Object getHuaLongSuperById(Integer id);

    /**
     * 护工列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long nurse vo
     */
    Object getHuaLongNurseList(Integer page, Integer size);

    /**
     * 护工详情
     *
     * @param id    the id
     *
     * @return  the hua long nurse vo
     */
    Object getHuaLongNurseById(Integer id);

    /**
     * 获取护工楼栋信息
     *
     * @param id    the id
     * @return
     */
    Object getHuaLongNurseBuildInfoId(Integer id);

    /**
     * 班组列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long team vo
     */
    Object getHuaLongTeamList(Integer page, Integer size);

    /**
     * 班组详情
     *
     * @param id    the id
     *
     * @return  the hua long team vo
     */
    Object getHuaLongTeamById(Integer id);

    /**
     * 长者列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long elder vo
     */
    Object getHuaLongElderList(Integer page, Integer size);

    /**
     * 长者详情
     *
     * @param id    the id
     *
     * @return  the hua long elder vo
     */
    Object getHuaLongElderId(Integer id);

    /**
     * 获取楼栋房间
     *
     * @return  the hua long build info vo
     */
    Object getHuaLongBuildList();

    /**
     * 获取房间床位/老人信息
     *
     * @param roomId    the room id
     *
     * @return  the hua long room info vo
     */
    Object getHuaLongRoomBedInfo(Integer roomId);

    /**
     * 医生查看预约详情
     *
     * @param id    预约id
     *
     * @return  the object.
     */
    Object getHuaLongAppointmentInfo(Integer id);

    /**
     * 医生可查看预约列表
     *
     * @param page  页数 (默认为1)
     * @param size  每页显示条数（默认为10）
     *
     * @return  the list hua long appointment vo
     */
    Object getHuaLongAppointmentList(Integer page, Integer size);

    /**
     * 医生审核预约信息
     *
     * @param huaLongDoctorAuditDto the hua long doctor audit dto
     *
     * @return  the object
     */
    Object huaLongDoctorAuditElder(HuaLongDoctorAuditDto huaLongDoctorAuditDto);

    /**
     * 医生端（修改密码）
     *
     * @param id            医生id
     * @param password      输入密码
     * @param repassword    确认密码
     *
     * @return  the object
     */
    Object doctorModifyPwd(Integer id, String password, String repassword);

    /**
     * 护士端（修改密码）
     *
     * @param id            医生id
     * @param password      输入密码
     * @param repassword    确认密码
     *
     * @return  the object
     */
    Object nurseModifyPwd(Integer id, String password, String repassword);
}
